﻿namespace Twitter
{
	/// <summary>
	/// Main client API for interacting with Twitter from an application.
	/// </summary>
	public interface IBotClient
	{
		/// <summary>
		/// Pings the service to detect connectivity and service availability.
		/// </summary>
		bool Ping();

		/// <summary>
		/// Exposes operations related to users' friends and followers.
		/// </summary>
		IFriendship Friendship { get; }

		/// <summary>
		/// Exposes operations related to users' direct messages.
		/// </summary>
		IMessages Messages { get; }

		/// <summary>
		/// Exposes operations related to users' statuses.
		/// </summary>
		IStatuses Statuses { get; }

		/// <summary>
		/// Gets the profile associated to the given screen name
		/// </summary>
		/// <param name="screenName">user's screen name</param>
		/// <returns>user profile</returns>
		User GetProfile(string screenName);
	}
}
